package cn.csust.net2.manager.shared.service;

import java.util.List;
import cn.csust.net2.manager.shared.exception.BeyondAuthorityException;
import cn.csust.net2.manager.shared.util.ServiceConstant;

import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath(value = ServiceConstant.MANAGER+ServiceConstant.SERVICE_NAME_VOTEMANAGER)
public interface VoteManagerService extends VoteCommonService,TreeService{
	public static final String VOTEID = "voteID";
	public static final String BANJIIDLIST = "banjiIDList";
	public static final String MAJORLIST = "majorList";
	public static final String ACADEMYLIST = "academyList";
	public static final String VOTE = "vote";
	public static final String VOTEANSWERSET = "voteAnswerSet";
//	
//	/* 
//	 * @param config
//	 * @return
//	 * 
//	 */
//	public PagingLoadResult<Vote> findVotesByPaging(PagingLoadConfig config);	
//	/*
//	 * config 参数 “voteID” 
//	 * 返回此 vote 的所有voteResult
//	 */
//	public PagingLoadResult<VoteResult> findVoteResultsByPaging(PagingLoadConfig config);
//
//	/*
//	 * config 参数 “voteID” 
//	 * 返回此 vote 的所有voteanswers
//	 */
//	public PagingLoadResult<VoteAnswer> findVoteAnswersByPaging(PagingLoadConfig config);
//	
//	
//	/*
//	 * 考虑到网络传输量问题 ，所以尽量不在config里添加对象而直接添加属性
//	 * 而且很多情况下我们只用到了属性
//	 * config 参数 voteID
//	 * studentNumberList  此为StudentNumber的List<Long>集
//	 * 存入 student_vote 表中
//	 */
//	public void saveStudent_VoteByPaging(PagingLoadConfig config);
//	
//	/*
//	 * config 参数 voteID
//	 * 返回student_vote表中 对应 StudentNumber的集合
//	 */
//	public PagingLoadResult<Long> findStudent_Vote(PagingLoadConfig config);
//	
//	public int findVoteResultsByAnswerID(Long l);
	
	
	/*
	 *参数                                                                                                                        说明
	 * VoteManagerService.BANJIIDLIST 				List<Integer> // 班级id的list
	 * VoteManagerService.MAJORLIST					List<Integer> // 专业id的list
	 * VoteManagerService.ACADEMYLIST				List<Integer> // 学院id的list
	 * voteID					vote 的id
	 * 功能：若 学院list不为空 存入学院的所有班级   
	 * 		若 专业list不为空 存入专业的所有班级	
	 *   	若 班级list不为空 存入学所有班级
	 *   表 banji_vote
	 */
	
	
	public void saveVoteBanjiIDListByPaging(PagingLoadConfig config)throws BeyondAuthorityException;
	
	/*参数
	 * voteID
	 *返回 PagingLoadConfig 中的
	 *键                                                                                                                         值
	 * VoteManagerService.BANJIIDLIST 				List<Integer> // 班级id的list
	 * VoteManagerService.MAJORLIST					List<Integer> // 专业id的list
	 * VoteManagerService.ACADEMYLIST	s			List<Integer> // 学院id的list
	 * 
	 * 返回此的hashmap 包含以上 键值对
	 */
	public List<Integer> findVoteBanjiIDListByPaging(PagingLoadConfig config)throws BeyondAuthorityException;
	
//	public void saveVoteBypaging(PagingLoadConfig config);

	
}
